//#include <utility>
//#include <iostream>
//#include <fstream>
//#include <string>
//#include <vector>
//#include <sstream>
//#include <time.h>
//
//
//using namespace std;
//void main() {
//
//	clock_t init, final;
//	init=clock();
//	int length;
//	char * buffer;
//
//	ifstream is;
//	is.open ("matrix.txt", ios::binary );
//
//	// get length of file:
//	is.seekg (0, ios::end);
//	length = is.tellg();
//	is.seekg (0, ios::beg);
//
//	// allocate memory:
//	buffer = new char [length];
//
//	// read data as a block:
//	is.read (buffer,length);
//	is.close();
//
//	cout << length << endl;
//	float t;
//	stringstream sstr1(buffer);
//	sstr1 >> t;
//	
//	delete[] buffer;
//	
//	const int MATRIX_ROWS = 1000;
//    const int MATRIX_COLS = 1000;
//	ifstream ifs("matrix.txt");
//	if(ifs.is_open())
//		cout << "open" << endl;
//	else
//		cout << "not open" << endl;
//
//	vector<vector<float>> matrix;
//
//	for(int i = 0; i < MATRIX_ROWS; i++)
//		matrix.push_back(std::vector<float>(MATRIX_COLS));
//
//	float readFloat;
//
//	int curRow = 0;
//	int curCol = 0;
//
//	while(ifs >> readFloat) {
//		if(curCol >= MATRIX_COLS-1) {
//			matrix[curRow][curCol] = readFloat;
//			curCol = 0;                     
//			curRow++;
//		} else {
//            matrix[curRow][curCol] = readFloat;
//            curCol++;
//        }   					
//	}
//
//	string line;
//	while(!ifs.eof()) {
//		getline(ifs,line,' ');
//	}
////		delete[] buffer;
//	ifs.close();
//	ifstream ifs2("vector.txt");
//        
//    vector<float> v;
//
//    float readFloat2;
//
//    while(ifs2 >> readFloat2) {			
//		v.push_back(readFloat2);     
//    } 
//
//	vector<float> answer(MATRIX_ROWS);
//
//	final=clock()-init;
//	cout << "input time: " << (double)final / ((double)CLOCKS_PER_SEC) << endl;
//
//	for(int i=0; i<v.size(); i++) {
//		//cout << v[i] << endl;
//	}
//
//	init=clock();
//	for(int i = 0; i < MATRIX_ROWS ; i++) {
//		for(int j = 0; j < MATRIX_COLS  ; j++) {
//			answer[i] = answer[i] + matrix[i][j] * v[j];
//			//cout << "i: " << i << ", j:" << j ;
//			//cout << " val: " << matrix[i][j] << endl;
//		}
//	}
//
//	final=clock()-init;
//	cout << "calc time: " << (double)final / ((double)CLOCKS_PER_SEC) << endl;
//
//	for(int i=0; i<answer.size(); i++) {
//		//cout << answer[i] << endl;
//	}
//
//	char myChar;
//	cin>>myChar;
//	ifs2.close();
//}